/**
 * 旋转数组
给你一个数组，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。

 

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]
示例 2:

输入：nums = [-1,-100,3,99], k = 2
输出：[3,99,-1,-100]
解释: 
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]
 * @param {*} nums 
 * @param {*} k 
 */

var rotateArray = function(nums, k) {
    // let temp = nums.length - k
    // nums.unshift(...nums.splice(temp))
    let len = nums.length;
    let t = k % len;
    nums.unshift(...nums.splice(len-t))
   return nums
}

var rotateArray_one = function(nums, k) {
//    for(let i = 0; i < k; i++) {
//        // splice会返回删除的元素
//        // unshift 从数组头部添加
//        // 每次从后面删除一个在添加到开头
//        nums.unshift(...nums.splice(nums.length-1, 1))
//    }
//    return nums;
   
}

var rotateArray_two = function(nums, k) {
    for(let i = 0; i < k; i++) {
        // pop返回从数组末尾弹出的元素
        // unshift 从数组头部添加
        // 每次从后面删除一个在添加到开头
        nums.unshift(nums.pop())
    }
    return nums;
 }
// rotateArray( [1,2,3,4,5,6,7], 3)
console.log(rotateArray_one( [1,2,3,4,5,6,7], 3))